"""
和文件类定义相关操作
"""
from data_define import Record
import json
#先定义一个抽象类,确定有哪些功能需要实现
class Filereader:

    def read_data(self) -> list[Record]:
        pass

#定义文本文件读取类
class TextFileReader(Filereader):
    def __init__(self, path):
        self.path = path

    def read_data(self) -> list[Record]:
        f = open(self.path, "r", encoding="UTF-8")
        record_list: list[Record] = []
        for line in f.readlines():
            line = line.strip()
            line_list = line.split(",")
            record = Record(line_list[0], line_list[1], int(line_list[2]),line_list[3])     #注意这里是封装一条是数据为一个数据对象
            record_list.append(record)

        f.close()
        return record_list



#定义Json文件的读取类
class JsonFileReader(Filereader):
    def __init__(self, path):
        self.path = path


    def read_data(self) -> list[Record]:
        f = open(self.path, "r", encoding="UTF-8")
        record_list: list[Record] = []
        for line in f.readlines():
            line = json.loads(line)
            record = Record(line["date"], line["order_id"], int(line["money"]), line["province"])
            record_list.append(record)
        #关闭文件
        f.close()
        return record_list



if __name__ == '__main__':
    text_file_reader = TextFileReader("D:/第13章资料/2011年1月销售数据.txt")
    json_file_reader = JsonFileReader("D:/第13章资料/2011年2月销售数据JSON.txt")
    list1 = text_file_reader.read_data()#用一个列表进行接收
    list2 = json_file_reader.read_data()
    #遍历每一行
    print("这是csv文件处理后的数据")
    for line in list1:
        print(line)
    print("这是json文件处理后的数据")
    for line in list2:
        print(line)